/*************************************************************************
	> File Name: oj-236.cpp
	> Author: Wang Bo
	> Mail: 1276106221@qq.com
	> Created Time: 2020年11月15日 星期日 15时20分15秒
 ************************************************************************/

#include <iostream>
using namespace std;

int n, m, num[15], cnt;

void p() {
    for (int i = 0; i < cnt; ++i) {
        if (i) {
            cout << " ";
        }
        cout << num[i];
    }
    cout << endl;
}

//@param s从几开始选,选到n为止
//@param m剩几个数要选
//剩余数为0，输出一次答案
void func(int s, int m) {
    if (m == 0) {
        p();
        return ;
    }
    for (int i = s; i <= n; ++i) {
        num[cnt] = i;
        cnt++;
        //下一层选的数要比这一层大
        //并且下一层剩下要选的数-1
        func(i + 1, m - 1);
        cnt--;
    }
}
int main() {
    cin >> n >> m;
    func(1, m);
    return 0;
}
